package com.word.student.mapper;

import java.util.List;

import com.word.student.domain.WordFavorite;
import com.word.student.domain.WordGet;
import com.word.student.domain.WordGroupGet;
import org.apache.ibatis.annotations.Param;

/**
 * 单词背诵Mapper接口
 * 
 * @author wsccvb
 * @date 2025-05-21
 */
public interface WordGetMapper 
{
    /**
     * 查询单词背诵
     * 
     * @param wordFavorite 单词背诵主键， 用户主键
     * @return 单词背诵
     */
    public WordGet selectWordGetById(WordFavorite wordFavorite);

    /**
     * 查询单词背诵列表
     * 
     * @param wordGet 单词查询条件
     * @param wordFavorite 用户收藏条件
     * @return 单词背诵集合
     */
    public List<WordGet> selectWordGetList(
        @Param("wordGet") WordGet wordGet, 
        @Param("wordFavorite") WordFavorite wordFavorite
    );
    
    /**
     * 批量查询单词背诵
     * 
     * @param ids 单词ID列表
     * @param userId 用户ID
     * @return 单词背诵列表
     */
    public List<WordGet> selectWordGetByIds(
        @Param("ids") List<Long> ids, 
        @Param("userId") Long userId
    );
    
    public int insertCollect(WordFavorite wordFavorite);

    public int deleteCollect(WordFavorite wordFavorite);

    /**
     * 通过单词分组value批量查询单词分组
     *
     * @return 整张单词表
     */
    public List<WordGroupGet> selectWordGroupGetByValue(String value);

    /**
     * 通过单词背诵主键删除单词分组信息
     * 
     * @param id 单词背诵ID
     * @return 结果
     */
    public int deleteWordGroupGetByWordId(Long id);

    /**
     * 查询单词收藏信息
     * @param wordFavorite 查询对象
     * @return 结果
     */
    public boolean checkCollected(WordFavorite wordFavorite);
}
